home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
fb386
/
pickup
/
narcisst.bas
< prev
next >
Wrap
BASIC Source File
|
1991-10-18
|
9KB
|
209 lines
1 KEY (1) ON :ON KEY (1) GOSUB 65010:PLAY OFF
10 '
20 ' A Crazy Narcissist / by Kazuya Shimada
30 '
40 PLAY OFF:LOAD@"PDRUMS.PMB":LOAD@"Q:\FJ\FM\FM_1.FMB"
50 DIM T%(4,9),V%(23),D%(47)
60 '----------------------------------------------------------------
70 TNO%=1 : TNAME$="MAIN 1"
80 FOR Y%=0 TO 4 : FOR X%=0 TO 9:READ T%(Y%,X%):NEXT:NEXT:GOSUB *TNCONV
90 ' AF OM WF SY SP PMD AMD PMS
100 DATA 56, 15, 0, 0, 0, 0, 0, 0, 0, 0
110 ' AR DR SR RR SL TL KS ML DT AMS
120 DATA 31, 0, 0, 6, 1, 24, 1, 7, 1, 0
130 DATA 31, 0, 0, 6, 0, 31, 1, 1, 1, 0
140 DATA 31, 0, 0, 6, 0, 31, 1, 1, 1, 0
150 DATA 31, 7, 6, 6, 2, 0, 1, 2, 4, 0
160 '----------------------------------------------------------------
170 TNO%=2 : TNAME$="BASS"
180 FOR Y%=0 TO 4 : FOR X%=0 TO 9:READ T%(Y%,X%):NEXT:NEXT:GOSUB *TNCONV
190 ' AF OM WF SY SP PMD AMD PMS
200 DATA 16, 15, 0, 0, 0, 0, 0, 0, 0, 0
210 ' AR DR SR RR SL TL KS ML DT AMS
220 DATA 31, 18, 0, 6, 2, 48, 0, 10, 0, 0
230 DATA 31, 14, 4, 6, 2, 25, 0, 0, 7, 0
240 DATA 31, 10, 4, 6, 2, 19, 1, 0, 3, 0
250 DATA 31, 8, 3, 6, 2, 3, 1, 0, 0, 0
260 '----------------------------------------------------------------
270 GOSUB 1030
280 GOTO 420
290 *TNCONV
300 FOR I%=0 TO 3:J%=I%+1:D%(8+I%)=(T%(J%,8)AND 7)*16+(T%(J%,7)AND 15)
310 D%(12+I%)=(T%(J%,5) AND 127)
320 D%(16+I%)=(T%(J%,6) AND 3)*64+(T%(J%,0) AND 31)
330 D%(20+I%)= T%(J%,1) AND 31:D%(24+I%)=T%(J%,2) AND 31
340 D%(28+I%)=(T%(J%,4) AND 15)*16+(T%(J%,3) AND 15):NEXT
350 D%(32)=T%(0,0):D%(33)=&HC0+((T%(0,7) AND 3)*16)+((T%(0,8) AND 7))
360 A$=LEFT$(TNAME$+" ",8)
370 FOR I%=0 TO 7:D%(I%)=ASC(MID$(A$,I%+1,1)):NEXT
380 FOR I%=0 TO 47 STEP 2:L&=D%(I%+1)*256+D%(I%)
390 IF L&<&H8000 THEN V%(I% \ 2)=CINT(L&) ELSE V%(I% \ 2)=CINT(L&-&H10000)
400 NEXT:VOICE TNO%,V%:RETURN
410 '----------------------------------------------------------------
420 FOR I=0 TO 13:PART I,I:NEXT
430 T$="T125Q8L8%CU0"
440 PLAY T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$
450 G0$="@3V15L12O4ARARARAR"
460 G0A$="U360@3V15L12O3ARARARAR"
470 H0$="@2%RV15L12O3RRERL24EEEEEEEE"
480 H0A$="U360@2%LV15L12O3RRERL24EEEEEEEE"
490 A1$="@1%CV8L8O4CDFEC16DF.E16C16 D16GD16&D2."
500 B1$="U80@1%CV8L8O4CDFEC16DF.E16C16 D16GD16&D2."
510 C1$="U40@1%CV8L8R1 R1"
520 F1$="@2V13L16O3(CCCC)4 <(B-B-B-B-)4"
530 G1$="L8O3((ARAR)2)2"
540 G1A$="L8O4((ARAR)2)2"
550 G2$="O3(ARAR)3ARAA"
560 G2B$="O4(ARAR)3ARAA"
570 H1$="L8O4((RERE)2)2"
580 H1A$="L8O4((RERE)2)2"
590 H1B$="O4(RERE)3REL16REL32EEEEL8"
600 I1$="@4V15L16O5((AAAA)4)2"
610 I1A$="U360@4V15L16O5((AAAA)4)2"
620 J1$="@14%RV8L8O4CDFEC16DF.E16C16 D16GD16&D2."
630 K1$="U120@14%LV8L8O4CDFEC16DF.E16C16 D16GD16&D2."
640 A2$="%RV10L16O4EEEE8EE8F8EC8CD8 EEEE8EE8G8FC8CD8"
650 B2$="%LV10L16O4EEEE8EE8F8EC8CD8 EEEE8EE8G8FC8CD8"
660 C2$="L16O4E32&EEEE8EE8F8EC8CD8 EEEE8EE8G8FC8CD."
670 F2$="L16O2(A-A-A-A-A-A-B->C<) (A-A-A-A-A-A-B->C-<)"
680 A3$="%RV10L16O4E-E-E-E-8E-E-8F8E-C8CD8 E-E-E-E-8E-E-8G-8FC8CD8"
690 B3$="%LV10L16O4E-E-E-E-8E-E-8F8E-C8CD8 E-E-E-E-8E-E-8G-8FC8CD8"
700 C3$="L16O4E-32&E-E-E-E-8E-E-8F8E-C8CD8 E-E-E-E-8E-E-8G-8FC8CD."
710 A4$="O4E-DCE-DCE-DFE-DFE-DFE- GFE-GFE-GF A-GFA-GFA-G"
720 B4$="O4E-DCE-DCE-DFE-DFE-DFE- GFE-GFE-GF A-GFA-GFA-G"
730 C4$="O4E-32&E-DCE-DCE-DFE-DFE-DFE- GFE-GFE-GF A-GFA-GFA-G32"
740 F4$="O3CCCCCCCCDDDDDDDD E-E-E-E-E-E-E-E-FFFFFFFF"
750 J4$="L16O4E-DCE-DCE-DFE-DFE-DFE- GFE-GFE-GF A-GFA-GFA-G"
760 A5$="O5CCCC<B-B-B-B-A-A-A-A-GGGG FFE-E-DDE-E-FFGGA-A-B-B-"
770 B5$="O5CCCC<B-B-B-B-A-A-A-A-GGGG FFE-E-DDE-E-FFGGA-A-B-B-"
780 C5$="O5C32&CCCC<B-B-B-B-A-A-A-A-GGGG FFE-E-DDE-E-FFGGA-A-B-B-32"
790 F5$="O2A->A-<A->A-<G>G<G>G<F>F<F>F<E->E-<E->E- <D>D<C>C<<B->B-C>C<D>D<E->E-<F>F<G>G"
800 H5$="O4(L16REEEREEEL8)2 (RERE)2"
810 J5$="O5CCCC<B-B-B-B-A-A-A-A-GGGG FFE-E-DDE-E-FFGGA-A-B-B-"
820 A6$="L1O5C4R2. R"
830 B6$="L1O5C4R2. R"
840 C6$="L1O5C32&C4R2. R2..."
850 F6$="O2(A-A-A-A-A-A-A-A-)2 (GGGGGGGG)2"
860 G6$="O3(ARAR)3ARRR"
870 G6B$="O4(ARAR)3ARRR"
880 H6$="O4(RERE)3L32EEEEEEEEEEEEEEEE"
890 J6$="L1O5C R"
900 PLAY A0$,B0$,C0$,D0$,E0$,F0$,G0$,G0A$,H0$,H0A$,I0$,J0$,K0$
910 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G1$,G1A$,H1$,H1A$,I1$,I1A$,J1$,K1$
920 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G2$,G2B$,H1B$,H1B$,I1$,I1$,J1$,K1$
930 PLAY A2$,B2$,C2$,D2$,E2$,F2$,G1$,G1A$,H1$,H1A$,I1$,I1$,J2$,J2$
940 PLAY A2$,B2$,C2$,D2$,E2$,F2$,G1$,G1A$,H1$,H1A$,I1$,I1$,J2$,J2$
950 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G1$,G1A$,H1$,H1A$,I1$,I1$,J1$,K1$
960 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G2$,G2B$,H1B$,H1B$,I1$,I1$,J1$,K1$
970 PLAY A3$,B3$,C3$,D3$,E3$,F2$,G1$,G1A$,H1$,H1A$,I1$,I1$,J3$,J3$
980 PLAY A3$,B3$,C3$,D3$,E3$,F2$,G1$,G1A$,H1$,H1A$,I1$,I1$,J3$,J3$
990 PLAY A4$,B4$,C4$,D4$,E4$,F4$,G1$,G1A$,H1$,H1A$,I1$,I1$,J4$,J4$
1000 PLAY A5$,B5$,C5$,D5$,E5$,F5$,G1$,G1A$,H5$,H5$,I1$,I1$,J5$,J5$
1010 PLAY A6$,B6$,C6$,D6$,E6$,F6$,G6$,G6B$,H6$,H6$,I1$,I1$,J6$,J6$
1020 GOTO 910
1030 '
1040 GOSUB *SCREEN
1260 I$=INKEY$:IF I$="" THEN 1260
1270 GOSUB *F_OUT : SCREEN@ 1:CLS
1280 PASTEL 127
1290 FOR I=0 TO 239
1300 LINE(0,I)-(319,I),PSET,[127,RND*255,127]
1310 NEXT
1320 FOR I=1 TO 55
1330 X=RND*320:Y=RND*320:R=RND*40
1340 CIRCLE(X,Y),R,0,,,,F
1350 NEXT
1360 PASTEL 192
1370 FOR I=1 TO 250
1380 X=RND*320:Y=RND*320
1390 IF POINT(X,Y)<>0 THEN 1380
1400 C=RND*6+1
1410 PSET(X,Y),C,PASTEL
1420 NEXT
1430 PASTEL 192
1440 FOR I=1 TO 30
1450 X=RND*320:Y=RND*320:H=RND*32:C=RND*6+1
1460 LINE(X,Y)-(X+H,Y+H),PASTEL,C,BF
1470 NEXT
1480 SYMBOL(15,199),"A Crazy Narcissist",2,2,1
1490 SYMBOL(17,199),"A Crazy Narcissist",2,2,1
1500 SYMBOL(15,201),"A Crazy Narcissist",2,2,1
1510 SYMBOL(17,201),"A Crazy Narcissist",2,2,1
1520 SYMBOL(16,200),"A Crazy Narcissist",2,2,5
1530 FOR I=0 TO 5000:NEXT
1540 RETURN
17000 *SCREEN
17010 SCREEN@ 0 : PALETTE@
17020 FOR I=0 TO 15 : PALETTE I,[0,0,0] : NEXT
17030 COLOR ,%5 : CLS
17040 X=630 : Y=30 : MX=2 : MY=3: R=3 : C1=1 : C2=5 : C3=15 : F=16
17050 ST$="PICK UP TOWNS" : GOSUB *STR_PUT
17060 X=575 : Y=30 : MX=2 : MY=3 : R=3 : C1=1 : C2=5 : C3=15 : F=16
17070 ST$="MUSIC PROGRAM" : GOSUB *STR_PUT
17080 GOSUB *F_IN : FOR I=0 TO 2000 : NEXT
17090 X1=10 : X2=510 : Y1=10 : Y2=460 : C1=1 : C2=6 : C3=15
17100 GOSUB *WAKU
17110 X1=20 : X2=500 : Y1=20 : Y2=90 : C1=15 : C2=7 : C3=5
17120 GOSUB *WAKU
17130 X1=20 : X2=500 : Y1=420 : Y2=450 : C1=15 : C2=7 : C3=5
17140 GOSUB *WAKU
17150 X1=20 : X2=500 : Y1=100 : Y2=410 : C1=15 : C2=7 : C3=5
17160 GOSUB *WAKU
17170 SYMBOL (30,430),"PF1キーを押すと、演奏を中断して音楽MENUに戻ります。",1,1,0,,,1
17180 SYMBOL (30,30)," TITLE ",1,1,0,0,PSET,17
17190 SYMBOL (80,53),"A Crazy Narcissist",1,2,0,0,PSET,1
17200 SYMBOL (30,110)," DATA ",1,1,0,0,PSET,17
17210 SYMBOL (80,140),"Programed by KAZUYA SHIMADA",1,1,0,0,PSET,1,1
17220 SYMBOL (80,160)," Composed by KAZUYA SHIMADA",1,1,0,0,PSET,1,1
17230 SYMBOL (30,200)," MESSAGE ",1,1,0,0,PSET,17
17240 'ST$()="・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
17250 ST$(0)=" うーん。ふと何気なく作ってみたら、もろに A-JAX ぽく"
17260 ST$(1)="なってしまった。オーケストラヒットの音を使う時は、なる"
17270 ST$(2)="べく短い音符を使うのが、通ですね。この曲名、苦心して考"
17280 ST$(3)="えたのですがどうでしょうか。"
17290 ST$(4)="リターンキー、または実行キーを押すと演奏が始まります。"
17300 ST$(5)=""
17310 ST$(6)=" オリジナリティーのある曲を作れー(神の声)"
17320 ST$(7)=" ひえぇぇぇぇぇぇぇ。お許しをー。"
17330 GOSUB *MESSAGE
17340 RETURN
17350 *STR_PUT
17360 SYMBOL (X,Y),ST$,MX,MY,%C1,R,PSET,F
17370 SYMBOL (X+1,Y),ST$,MX,MY,%C1,R,PSET,F
17380 SYMBOL (X+2,Y),ST$,MX,MY,%C1,R,PSET,F
17390 SYMBOL (X+2,Y-1),ST$,MX,MY,%C1,R,PSET,F
17400 SYMBOL (X+2,Y-2),ST$,MX,MY,%C1,R,PSET,F
17410 SYMBOL (X,Y-2),ST$,MX,MY,%C3,R,PSET,F
17420 SYMBOL (X+1,Y-2),ST$,MX,MY,%C3,R,PSET,F
17430 SYMBOL (X,Y-1),ST$,MX,MY,%C3,R,PSET,F
17440 SYMBOL (X+1,Y-1),ST$,MX,MY,%C2,R,PSET,F
17450 RETURN
17460 *WAKU
17470 LINE (X1+2,Y1+2)-(X2-2,Y2-2),PSET,%C2,BF
17480 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),%C3
17490 CONNECT (X1+1,Y2-1)-(X1+1,Y1+1)-(X2-1,Y1+1),%C3
17500 CONNECT (X1+1,Y2)-(X2,Y2)-(X2,Y1+1),%C1
17510 CONNECT (X1+2,Y2-1)-(X2-1,Y2-1)-(X2-1,Y1+2),%C1
17520 RETURN
17530 *MESSAGE
17540 FOR I=0 TO 7
17550 SYMBOL (50,230+20*I),ST$(I),1,1,0,0,PSET,1
17560 NEXT I
17570 RETURN
17580 *F_OUT
17590 FOR I=16 TO 1 STEP -1 : GOSUB *PALETTE : NEXT I :COLOR ,%0: CLS: RETURN
17600 *F_IN
17610 FOR I=1 TO 16 : GOSUB *PALETTE : NEXT I : RETURN
17620 *PALETTE
17630 PALETTE 1,[0*I,0*I,1*I]
17640 PALETTE 2,[1*I,0*I,2*I]
17650 PALETTE 3,[2*I,1*I,3*I]
17660 PALETTE 4,[4*I,2*I,6*I]
17670 PALETTE 5,[8*I,6*I,9*I]
17680 PALETTE 6,[12*I,10*I,13*I]
17690 PALETTE 7,[14*I,13*I,15*I]
17700 PALETTE 15,[15*I,15*I,15*I]
17710 RETURN
65000 BGM 0:PLAY "R64":BGM 1
65010 KEY (1) OFF:PLAY OFF:FOR I=0 TO 13:PART I,I:NEXT:RUN"MENU.BAS"